A keyboard, video, mouse (“KVM”) switch is a hardware device that allows a single keyboard, video monitor, and mouse input device to control more than one computer. KVM switches are typically connected to each of the computers to be controlled using a keyboard cable, a video cable, and a mouse cable. In traditional installations, a local computer is also connected to the KVM switch with a keyboard cable, a video cable, and a mouse cable. Through the local computer, a user can control any of the other computers connected to the KVM switch. The KVM switch provides functionality for specifying which of the connected computers are controlled by the local computer. KVM switches are commonplace in server installations where it is only necessary to periodically access each separate server computer at a time. In this manner, none of the server computers are required to have their own dedicated keyboard, video monitor, or mouse.
More advanced KVM switches connect to a local or wide area network (“WAN”) rather than to a local computer. Through the network connection, the user of a remote computer can connect to the KVM switch and control any of the connected computers. These types of KVM switches are referred to as KVM over internet protocol (“KVMoIP”) switches. KVMoIP switches generally include a dedicated microcontroller and video capture hardware to capture the video signals generated by the controlled computer, to compress and packetize the video signals, and to send the compressed data over the network to the remote computer. The video data is then decompressed and displayed at the remote computer. Keyboard and mouse signals are transferred to the KVMoIP switch from the remote computer in a similar manner.
The main benefit of KVMoIP switches is that they allow access to the computers connected to the KVMoIP switch even before the computers have booted an operating system. For instance, through a KVMoIP switch, the power-on self test (“POST”) and basic input/output system (“BIOS”) of a connected computer may be viewed, accessed, and controlled. Because KVMoIP switches do not require any software or special hardware on the connected computers, they are referred to as “out-of-band” solutions.
Although KVMoIP switches do provide several benefits over traditional KVM switches, these switches are not without their drawbacks. The first drawback stems from the fact that it is necessary for a separate keyboard cable, video cable, and mouse cable to be utilized between the KVMoIP switch and every connected computer. These cables are expensive and, in large server installations, add to already complex wiring. The second problem with KVMoIP switches stems from the fact that these devices must capture, compress, and transmit the video output of the connected computers. In many cases, the computers are connected to the KVMoIP switch through an analog video signal. In this configuration, it is especially difficult to meaningfully compress an analog video signal that typically contains noise and other artifacts. Even where the video signal is digital, the compression process still requires considerable processing capacity within the KVMoIP switch, which can be expensive and also generates undesirable heat.
One alternative to KVMoIP switches for remotely controlling the operation of computer systems are remote graphical console software packages. These solutions utilize server software executing on the controlled computer to capture video screen application programming interface (“API”) calls and to transmit them to a client application executing on the remote computer. The client application then replays the API calls so that the display is shown at the remote computer. Remote graphical console software packages also transmit keyboard and mouse data between the controlled computer and the remote computer so that a user can interact with the controlled computer as if she was located proximately to the controlled computer. Because remote graphical console software packages do require the installation and execution of software on the controlled computer, these solutions are referred to as “in-band” solutions.
While “in-band” solutions do not require the costly cables or hardware of “out-of-band” solutions, these solutions are also not without their drawbacks. In particular, the main problem with “in-band” solutions is that they do not allow access to or control of the connected computers prior to the loading of the operating system and the remote graphical console server software. This is because software based remote graphical console applications require the operating system to boot and to load a driver before video can be redirected. This means that access to POST and BIOS screens of the connected computers is not possible using “out-of-band” solutions. This is a significant limitation for system administrators responsible for managing installations of server computers.
It is with respect to these considerations and others that the various embodiments described below have been made.